#ifndef BASICACTIONS_H
#define BASICACTIONS_H

#include <ToolBox/gl/ViewPoints/viewpoint.h>
#include <ToolBox/gl/ViewPoints/viewpoint3D.h>

#include <SDL/SDL.h>
#include <DirectLOL/CollisionDetection/boundingsphere.h>
#include <DirectLOL/CollisionDetection/aabb.h>

class BasicActions
{
    public:
    BasicActions();

    static int MoveCamera(ViewPoint3D * pow, int *x, int* y);
    static int MoveCameraN(ViewPoint3D * pow, int *x, int* y);


    static int MoveForward(Vectorf * position, Vectorf * direction, float coef);
    static int MoveDownWard(Vectorf * position,Vectorf* direction, float coef);

    static int StrafeLeft(Vectorf *position, Vectorf *direction, float coef);
    static int StrafeRight(Vectorf * position, Vectorf * direction, float coef);


    static int MoveForwardA(Physic * physic, Vectorf * direction, float * coef);
    static int MoveDownWardA(Physic * physic, Vectorf * direction, float * coef);
    static int StrafeLeftA(Physic * physic, Vectorf * direction, float * coef);
    static int StrafeRightA(Physic * physic, Vectorf * direction, float * coef);

    static int PushBoundingBox(AABB *a, AABB *b);
    static int Rotate(Vectorf * vec, int time);

};

#endif // BASICACTIONS_H
